1. The Field of the Invention
The present invention relates to software user interfaces. More specifically, the present invention is related to graphical interfaces for software control of computer functions.
2. The Relevant Art
The development of graphic user interfaces for computers has helped catalyze the explosive growth of the computing industry and especially the personal computing industry. By providing an ability to control the operation of software through the use of screen controls having an appearance similar to common mechanical devices such as push buttons, radio buttons, check boxes, sliders and lists, computing has become accessible to many people who would otherwise be intimidated by the traditional command line interfaces common to the mainframe computing environment that require the user to master numerous complex strings of instructions. In contrast, the user of a graphical interface can take advantage of the intuitive nature of the graphic control elements which, e.g., allow user to turn "on" or "off" parameters by simply "pushing" a button. Thus for example, both the Macintosh.RTM. and Microsoft.RTM. Windows operating systems have developed a widespread and loyal following among computer users based on the relative ease of use provided by the graphic user interfaces of those products.
The structure of graphical user controls is well known in the art. The controls are constructed using bitmapped images or vector graphics to provide the image of the control that the user views on the computer screen (e.g., a circle for a radio button or a rounded rectangle for a push button). Generally graphic user controls comprise two graphic layers, only one of which is displayed at any time. The first layer typically is an image of the control in a non-activated state (e.g., an unpressed button). The second is an image of the control in an activated state (e.g., a depressed button). In some cases, the button will remain displayed after the user has performed an input or selection action on the control. For example, after selecting a radio button, the graphic representing the button remains in the activated state. However, a push button may only display an activated state graphic for the duration of the selection action.
In operation, the operating system determines whether a user input device, such as a mouse-controlled cursor or stylus, is over the control by determining the screen location of the user input device and then comparing the location of the device with the coordinates of a "bounding box" that surrounds the graphic control image. When the operating system of the computer senses that a user input has been moved over the control, a user selection action, e.g., depressing a physical button on the mouse, is processed by the operating system to produce an action corresponding the "activation" of the graphical control (i.e., the button). The action produced by the system generally is determined by the software that generates the image of the button.
Although graphic user interfaces have enjoyed tremendous success in the computing industry, their limitations have become apparent. In general, present graphic user controls can be displayed in only one of two states, e.g., an "on" state and an "off" state. In a few cases (e.g., Motif and Windows) buttons having three states are available. Although this works for applications in which decisions that are binary or ternary in nature, there are still many other applications where more flexibility is needed. For example, using present graphic control technology a computer program can only offer the user an "on" or "off" state or "high", "medium" and "low" states. However, many situations exist in which it would be preferable to offer the user a greater range of options without cluttering the screen. For example, it would be useful to offer users networked to several printers a single button that can "toggle" between the different printers rather than presenting a list of printers that would clutter the user's screen. Such flexibility would decrease substantially the complexity and bulk of the interface.
Another limitation with current graphical user interface technologies stems from the limitation that user controls are activated (or deactivated) by placing a control device (e.g., a mouse or stylus) within a rectangular region surrounding the control (called the "bounding box") regardless of the shape of the control itself. Thus, for controls that are not inherently rectangular in shape (in which case the bounding box and control graphic can be made co-extensive), the user can be faced with unexpected results. For example, the user may make an action within the bounding box, but not on the control device, and yet initiate a system action.
In addition, the requirement that buttons have rectangular bounding boxes limits their application in providing the visually appealing and intuitive interfaces that have so greatly enhanced the utility of the computer. For example, in a database of materials for a complex device such as a jet engine, it would be advantageous to apply graphical user interface technology to produce a representation of a jet engine that can be dissected by activating graphical control objects corresponding to the parts of the engine. Unfortunately, the placement of non-rectangular graphic control devices representing the engine parts is limited by the need to prevent the overlapping of adjacent bounding boxes so as to avoid conflicts between control elements.
Thus, it can be seen that it would highly desirable to provide a graphic user interface where user input actions within the bounding box of a graphic control element did not activate that element. In addition, it would be preferable to have graphic control elements that could provide the same high degree of intuition found presently but allowed for a greater range of user input choices.